package util;

/**
 * Um objeto da classe Pair referencia uma ocorrência de uma palavra
 * pesquisada pelo usuário no campo de texto do editor.
 * 
 * @author Antonio
 *
 */
public class Pair {
	private int fstElm;
	private int sndElm;
	
	/**
	 * Contrutor de classe
	 * @param fstElm Inicio da ocorrência
	 * @param sndElm Fim da ocorrência
	 */
	public Pair(int fstElm, int sndElm) {
		this.fstElm = fstElm;
		this.sndElm = sndElm;
	}

	/**
	 * 
	 * @return O inicio da ocorrência
	 */
	public int getFstElm() {
		return fstElm;
	}
	
	/**
	 * Altera o inicio da ocorrência
	 * @param fstElm O novo inicio da ocorrência
	 */
	public void setFstElm(int fstElm) {
		this.fstElm = fstElm;
	}
	
	/**
	 * 
	 * @return O fim da ocorrência
	 */
	public int getSndElm() {
		return sndElm;
	}
	
	/**
	 * Altera o fim da ocorrência
	 * @param sndElm O novo fim da ocorrência
	 */
	public void setSndElm(int sndElm) {
		this.sndElm = sndElm;
	}
	
	/**
	 * Verifica se a instância é igual ao objeto fornecido como parâmetro
	 * @return True se for igual, False caso contrário
	 */
	public boolean equals(Object o){
		if (!( o instanceof Pair)){
			return false;
		} else{
			Pair p = (Pair) o;
			return this.getFstElm() == p.getFstElm() && this.getSndElm() == p.getSndElm();
		}
	}
	
	/**
	 * @return Uma apresentação visível para um objeto Pair
	 */
	@Override
	public String toString() {
		return "(" + fstElm + ", " + sndElm + ")";
	}
}